<?php
/**
 * Filter sprawdza, czy dane pochodzące (na przykład) z formularza są poprawne.
 * Jest to rozpoznawane na podstawie tablic przekazanej w konstruktorze.
 * Tablica ta powinna mieć postać:
 *
 * $aWarunki = array( 'nazwa' => array( 'regex' => '/^.{1,255}$/i', 'info' => ':standardText' ),);
 *
 */
class My_Filter_SprawdzUprawnienia implements Zend_Filter_Interface
{
    protected $_sController;
    protected $_sAction;
    protected $_acl;

    public function __construct(  )
    {
        $this->_acl = Zend_Registry::get('acl');
    }

    public function filter( $_request )
    {
        $oSesja = new Zend_Session_Namespace( 'zalogowanyUzytkownik' );
        $sRola = $oSesja->oUzytkownik->getRole();
     
        $sZasob = ( $_request->getModuleName() AND $_request->getModuleName() != 'default' ) ?
                    $_request->getModuleName() . '_' . $_request->getControllerName():
                    $_request->getControllerName();
     
        if( $this->_acl->isAllowed( $sRola, $sZasob, $_request->getActionName() ) )
        {
            return true;
        }

        return false;
    }
}
?>
